import React from 'react';
import { Provider } from 'react-redux'
import { browserHistory } from 'react-router';
import { storiesOf, action } from '@kadira/storybook';
import { withKnobs, number } from '@kadira/storybook-addon-knobs';
import { muiTheme } from 'storybook-addon-material-ui';
import configureStore from '../../stores/configureStore';
import ReportFiveHealthHabit from './';
import 'normalize.css';
import '../../App.css';

const store = configureStore(browserHistory);
const badData = {
  // 年齢【歳】
  age: 55,
  // 性別
  gender: 1,                  // 1:男性, 2:女性
  // 身長【cm】
  bodyHeight: 160,
  // 体重【kg】
  bodyWeight: 100,
  // 喫煙習慣
  smokingHabit: 1,            // 1:吸っている, 2:やめた(禁煙期間20年未満), 3:やめた(禁煙期間20年以上), 4:吸わない
  // 飲酒習慣
  alcoholHabit: 1,            // 1:飲む, 2:飲まない, 3:やめた
  // 飲酒頻度
  alcoholFrequency: 6,        // 1:月1日未満, 2:月1～3日, 3:週1～２日, 4:週3～4日, 5:週5～6日, 6:毎日
  // 飲酒量（日本酒）
  alcoholAmountSake: 9,       // 1:飲まない, 2:0.5合未満, 3:0.5～1合未満, 4:1合, 5:2合, 6:3合, 7:4合, 8:5～6合, 9:7合以上
  // 飲酒量（焼酎または泡盛）
  alcoholAmountShochu: 9,     // 1:飲まない, 2:0.5合未満, 3:0.5～1合未満, 4:1合, 5:2合, 6:3合, 7:4合, 8:5～6合, 9:7合以上
  // 飲酒量（ビールまたは発泡酒）
  alcoholAmountBeer: 9,       // 1:飲まない, 2:0.5合未満, 3:0.5～1合未満, 4:1合, 5:2合, 6:3合, 7:4合, 8:5～6合, 9:7合以上
  // 飲酒量（ウィスキーまたはブランデー）
  alcoholAmountWhiskey: 9,    // 1:飲まない, 2:0.5合未満, 3:0.5～1合未満, 4:1合, 5:2合, 6:3合, 7:4合, 8:5～6合, 9:7合以上
  // 飲酒量（ワイン）
  alcoholAmountWine: 9,       // 1:飲まない, 2:0.5合未満, 3:0.5～1合未満, 4:1合, 5:2合, 6:3合, 7:4合, 8:5～6合, 9:7合以上
  // 運動習慣（座っている時間）
  exerciseTimeSitting: 3,     // 1:3時間未満, 2:3～8時間未満, 3:8時間以上
  // 運動習慣（立ったり歩いたりしている時間）
  exerciseTimeStanding: 1,    // 1:1時間未満, 2:1～3時間未満, 3:3時間以上
  // 運動習慣（肉体労働やスポーツをする時間）
  exerciseTimeLaboring: 1,    // 1:なし, 2:1時間未満, 3:1時間以上
  // 塩蔵品（塩辛、たらこ、すじこ）
  salineFood: 5,              // 1:まったく食べない, 2:たまに食べる, 3:週に1～2日, 4:週に3～4日, 5:ほとんど毎日
  // 糖尿病の治療
  diabetesCureFlg: 1,         // 1:はい, 0:いいえ
  // 血糖値（空腹時）【mg/dl】
  bloodSugarLevelFasting: undefined, // 1:99mg/dl以下, 2:100mg/dl～125mg/dl, 3:126mg/dl以上
  // 降圧剤
  antihypertensiveFlg: 1,     // 1:服用している, 0:服用していない
  // 最高（収縮期）血圧【mmHg】
  maxBloodPressure: '210',
  // 最低（拡張期）血圧【mmHg】
  minBloodPressure: '130',
  // HDLコレステロール【mg/dl】
  hdlCholesterol: '5',
  // LDLコレステロール【mg/dl】
  ldlCholesterol: '130',
  // 中性脂肪（トリグゼライド）【mg/dl】
  triglyceride: '400',
  // 家族の既往歴（胃がん）
  familyAnamnesisFlg: 1,      // 0:なし, 1:あり
  // 抗体検査（ヘリコバクター・ピロリ菌）
  helicobacterPyloriFlg: 1,   // 1:はい(陽性), 0:いいえ(陰性)
  // 慢性胃炎
  chronicGastritisFlg: 1,     // 1:はい, 0:いいえ
};

/*global module*/
storiesOf('結果表示 (5つの健康習慣)', module)
  .addDecorator(muiTheme())
  .addDecorator(getStory => (
    <Provider store={store}>
      { getStory() }
    </Provider>
  ))
  .addDecorator(withKnobs)
  .add('to 結果表示 (5つの健康習慣)', () => (
    <ReportFiveHealthHabit
      inputData={badData}
      fiveHealtHabitFlgs={{
        okSmoking: true,
        okAlcohol: true,
        okBmi: false,
        okActivity: false,
        okSalineFood: false,
        count: 2,
      }}
      risk={{
        probability: {
          you: number('you', 4.8),
          min: 1.0,
          max: 8.0,
        },
      }}
      initialRisk={{
        probability: {
          you: number('init_you', 5.6),
          min: number('init_min', 2.7),
          max: number('init_max', 5.8),
          riskLevel: 'A_LITTLE_HIGH',
        },
        diagnosis: {
          okSmoking: true,
          okAlcohol: true,
          okBmi: false,
          okActivity: false,
          okSalineFood: false,
          count: 2,
          okWeightRange: {
            minWeight: 48.3,
            maxWeight: 102.8,
          },
        },
      }}
      advice={{
        message: '5つの健康習慣のうち、あなたは2つを実践できていますね。<br/>'
                +'しかし、2つではがん予防の観点からは十分とは言えません。実践数が増えれば、まだまだリスクを減らせます。',
      }}
      onCalcRisk={action('onCalcRisk')}
      onCancel={action('onCancel')}
      defaultSection="detail"
    />
  ));
